package ihm;

import javax.swing.JFrame;

import util.Constant;
import agent.model.royaume.AgentRoyaume;

/**
 * Affiche les statistiques liés aux agents.
 * @author Jean-François Augé & Guillaume Poças
 */
public class MainFrame extends JFrame {

	private static final long serialVersionUID = 1L;

	private InfoPanel panel;

	/**
	 * Constructeur.
	 * @param agent
	 */
	public MainFrame(AgentRoyaume agent) {
		super();

		panel = new InfoPanel(agent);
		add(panel);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(1000, 300);

		while(!agent.isDeadRoyaume() && !agent.isEndOfCycles()) {
			try {
				agent.increaseCurrentCycle();
				Thread.sleep(Constant.defaultTempsCycleInfo);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			panel.updateTableInfo();
		}
	}

	/**
	 * Thread servant à gérer l'IHM.
	 * @author Jean-François Augé
	 */
	public static class IHM extends Thread {

		private AgentRoyaume agent;

		/**
		 * Constructeur.
		 * @param agent
		 */
		public IHM(AgentRoyaume agent) {
			this.agent = agent;
		}

		@Override
		public void run() {
			new MainFrame(agent);
		}

	}

}
